package csc.fresher.dao;

import java.sql.Timestamp;
import java.util.List;

import csc.fresher.entity.AccountHasInterestRate;
import csc.fresher.entity.SavingTransaction;
import csc.fresher.entity.Transaction;

public interface SavingAccountTransactionDao{
	public long createTransaction(Transaction transaction, AccountHasInterestRate accountHasInterestRate);
	public void removeTransaction(long txID, long adminID, long accountID);
	public boolean approveTransaction(long txID, long adminID, long accountID);
	public boolean denyTransaction(long txID, long adminID, long accountID);
	public List<Transaction> searchTransactionByAccountID(long accountID);
	public List<Transaction> getListTransactionsByAccountID(long accountID, int startIndex, int maxReturn);
	public List<Transaction> getTransactionByCustomerCardID(long customerCardID);
	public List<Transaction> getTransactionByCustomerCardIDInGivenPeriod(long customerCardID, Timestamp beginDate, Timestamp endDate);
	public List<Transaction> getAllTransactionsByAccountIDInGivenPeriod(long accountID, Timestamp beginDate, Timestamp endDate);
	public List<Transaction> getListTransactionsByAccountIDInGivenPeriod(long accountID, Timestamp beginDate, Timestamp endDate, int startIndex, int maxReturn);
	SavingTransaction getLastSavingTransactionIsApproved(long accountID);
	public List<Transaction> getAllSavingTransaction();
	public List<Transaction> getSavingTransactionIsApproved(); 
	public List<Transaction> getSavingTransactionIsPending();
}
